package cn.hh.ymcc.service;

import cn.hh.ymcc.domain.CourseOrder;
import cn.hh.ymcc.dto.KillOrderParamDto;
import cn.hh.ymcc.dto.OrderParamDto;
import cn.hh.ymcc.dto.PyaResultDto;
import cn.hh.ymcc.result.JSONResult;
import com.baomidou.mybatisplus.service.IService;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author huang.hao
 * @since 2025-05-12
 */
public interface ICourseOrderService extends IService<CourseOrder> {

    /**
     * 提交订单
     * @param dto
     * @return
     */
    String placeOrder(OrderParamDto dto);

    /**
     *  保存主订单和子订单
     * @param courseOrder
     */
    void saveOrderAndItems(CourseOrder courseOrder);

    /**
     *  根据订单号查询订单
     * @param orderNo
     * @return
     */
     CourseOrder selectByOrderNo(String orderNo);

    /**
     *  处理订单的支付结果
     * @param orderDto
     */
    void payResultHandle(PyaResultDto orderDto);

    /**
     *  处理超时订单 修改订单支付状态为取消
     * @param orderNo
     */
    void payTimeOutCancelOrder(String orderNo);

    /**
     * 秒杀下单
     * @param dto
     * @return
     */
    String killPlaceOrder(KillOrderParamDto dto);
}
